Introducción y estructura básica SQL

Introducción

Aunque el álgebra relacional es un lenguaje potente que nos proporciona la posibilidad de especificar las operaciones de forma precisa, es necesario contar con un lenguaje más sencillo para el usuario. Este lenguaje será SQL.

Los componentes del SQL son los siguientes:

Lenguaje de definición de datos (DDL)
(Data Definition Languaje, DDL por sus siglas en inglés), para la definición de relación, borrado de relaciones y modificación de los esquemas de relación.
Lenguaje interactivo de manupulación de datos (DML)
(Data Manipularion Languaje, DML por sus siglas en inglés). El DML de SQL incluye un lenguaje de consultas basado en el álgebra relacional y el cálculo relacional, que permite insertar, borrar y modificar tuplas.
Integridad
El DDL de SQL presenta una serie de comandos para especificar las limitaciones de integridad. Las actualizaciones que violan las restricciones de integridad se rechazan.
Definición de vistas
El DDL de SQL permite crear vistas sobre sus relaciones.
Control de transacciónes
SQL incluye comandos para especificar el comienzo y el final de la transacciones.
SQL incorporado y el SQL dinámico
Incluye comandos para poder incluir instrucciones SQL en lenguajes de programación de propósito general como C, C++, Java, PL/I, Cbol, Pascal y Fortran.
Autorización
El DDL de SQL tiene una serie de comandos para deginir los derechos de acceso a las relaciones y a las vistas.

 

Lenguaje de definición de datos (DDL):Definición y modificación de esquemas de la relación, borrado de relaciones

Integridad (parte del DDL): Especificar restricciones de integridad para los datos y Actualizaciones que no cumplen restricciones se rechazan.

Lenguaje interactivo de manipulación de datos (DML): Seleccionar, insertar, borrar y modificar tuplas.

 

La definición de datos

El DDL de SQL permite especificar las relaciones de las bases de datos, así como información relativa a estas, incluyendo:

 

Tipos básicos de dominios

La norma SQL soporta gran variedad de tipos de dominio predefinidos, entre ellos:

 

Definición básica de esquemas en SQL

Para crear relaciones, se utiliza el comando CREATE TABLE.

 

Para introducir la clave primaria dentro de una tabla lo hacemos con el comando PRIMARY KEY.

 

Añadir datos

Cuando se crean las relaciones, inicialmente están vacías. Para poder añadir datos a la relación se utiliza el comando INSERT, dando los valores de cada atributo en el mismo orden en el que están definidos en el esquema.

Añadir una cuenta C-0001 en la sucursal del centro con un saldo de 1300 euros:

 

También podemos especificar a qué atributos queremos asignarles valor.

Cuando usamos esta opción, tenemos que asegurarnos de que los atributos que no asignamos admitan valores nulos; en otro caso, se producirá un error.

 

Borrar

Para borrar tuplas se utiliza el comando DELETE.

Si lo aplicamos sobre una relación, borrará todas las tuplas de esta.

Borrar todas las tuplas de la tabla cuenta:

 

El hecho de borrar todas las tuplas no implica que la relación desaparezca, sino que queda vacía.

Para borrar una tabla de la BD se utiliza el comando DROP TABLE.

Cuando aplicamos esta sentencia eliminamos tanto las tuplas como la propia tabla.

Eliminar la tabla cuenta:

 

Modificar

Para modificar la estructura inicial de una tabla se utiliza el comando ALTER TABLE.

Renombrar la tabla cliente a usuario:

 

Cambiar el nombre de un atributo: Cambia el nombre del atributo nombre_sucursal a sucursal de la tabla cuenta.

 

Agregar atributos a una tabla: Agrega la columna edad a la tabla cliente.

 

Eliminar atributos de una tabla: Elimina la columna edad de la tabla cliente.

 

Estructura básica de consultas SQL

El lenguaje SQL permite el uso de valores nulos para representar valores desconocidos o inexistentes, pero también deja al usuario definir que los atributos no permitan valores nulos. La estructura básica de una expresión SQL comprende tres cláusulas, que son SELECT, FROM y WHERE.

SELECT
FROM
WHERE
La cláusula SELECT se utiliza para determinar los atributos que se quieren obtener.
La cláusula FROM especifica las relaciones que toman parte en la operación que se va a realizar.
La cláusula WHERE permite establecer condiciones sobre los atributos indicados en la cláusula SELECT.

Si no se introduce se considera como cierto.

 

Ejemplos SELECT :

  1. Obtener los nombres de las sucursales de la relación prestamo:

     

  2. Si no queremos que los valores aparezcan duplicados, utilizamos la palabra distinct justo después de SELECT.

     

  3. Para definir de una manera explícita que no se eliminen los duplicados utilizamos la palabra all.

     

  4. Para denotar «todos los atributos» se utiliza el símbolo llamado asterisco, ( * ).

     

  5. En la cláusula SELECT se puede incluir también expresiones aritméticas: +, -, * y /, que operen sobre constantes o atributos de las tuplas.

    Nos devolverá la tabla con los atributos seleccionados en SELECT, pero con el importe multiplicado por 100.

 

Ejemplos WHERE :

  1. Obtener todos los préstamos concedidos en la sucursal del centro cuyo importe supere los 2000 euros:

     

  2. Si queremos simplificar las condiciones que se establezcan en función de rangos utilizaremos el comparador between:

    Seleccionar los préstamos con importe entre 80 000 € y 90 000 €:

     

    en vez de:

     

  3. También se puede usar el operador de comparación not between para especificar condiciones fuera de un rango.

 

DISTINCT

Si no queremos obtener duplicados en una consulta, podemos usar DISTINCT, esto realizará la consulta y eliminará los duplicados.

DISTINCT omite los registros cuyos campos seleccionados coincidan totalmente.

 

Ejemplos DISTINCT** :

  1. Obtener todos los clientes que tengan un préstamo:

    Esta cláusula devolverá todos los clientes que tengan un préstamo sin estar duplicados. Imagina que Juan tiene dos prestamos, uno para el coche y otro para una casa; con la clausula distinct, solo se devolverá el nombre una sola vez.

 

UPDATE

La sentencia UPDATE modifica los registros de una tabla, asignando a una o más columnas un valor distinto. La sentencia actuará en todas las filas a no ser que se utilice una cláusula WHERE.

 

  1. Actualizar el saldo de todas las cuentas de clientes VIP, aumentando un 10%:

 

Operación renombramiento

Se pueden renombrar las relaciones y los atributos utilizando la cláusula as:

Esta cláusula puede aparecer tanto en el SELECT como en el FROM.

 

Usando el renombramiento podemos mostrar otros valores más amigables en los nombres de las columnas.

Esta consulta devolverá una tabla cuyas columnas son Cliente, idPrestamo e importe, frente al resultado sin renombramiento, que sería nombre_cliente, numero_prestamo e importe.

 

by Jose Manuel Pinillos